草庐IT

java - DRY:最小化 Java 中的重复代码

全部标签

ruby - 重复排列

我知道如何创建值数组的排列。例如:[*1..3].permutation(2)这导致以下六种排列:[1,2][1,3][2,1][2,3][3,1][3,2]但这个结果缺少三个排列,它们是相同值的组合,即:[1,1][2,2][3,3]如何获得所有排列,包括上面重复的排列? 最佳答案 尝试#repeated_permutation:[*1..3].repeated_permutation(3).to_a>pp[*1..3].repeated_permutation(3).to_a[[1,1,1],[1,1,2],[1,1,3],[1

ruby - 使用包含在另外两个数组中的信息创建一个数组

如何使用如下两个数组构建一个数组:名称=[a,b,c]how_many_of_each[3,5,2]得到my_array=[a,a,a,b,b,b,b,b,c,c] 最佳答案 使用zip、flat_map和数组乘法:irb(main):001:0>value=[:a,:b,:c]=>[:a,:b,:c]irb(main):002:0>times=[3,5,2]=>[3,5,2]irb(main):003:0>value.zip(times).flat_map{|v,t|[v]*t}=>[:a,:a,:a,:b,:b,:b,:b,:b

ruby - 从 Ruby 中的 CSV 文件获取 header 的最简单方法是什么?

我需要做的就是从CSV文件中获取header。file.csv是:"A","B","C""1","2","3"我的代码是:table=CSV.open("file.csv",:headers=>true)putstable.headerstable.eachdo|row|putsrowend这给了我:true"1","2","3"我已经查看RubyCSV文档几个小时了,这让我发疯。我确信必须有一个简单的单行代码可以将header返回给我。有什么想法吗? 最佳答案 看起来CSV.read会让您访问headers方法:headers=C

ruby - 如何对 ruby​​ 中的重音单词数组进行排序

如何根据变量alpha的每个字母对重音单词数组进行排序。下面的代码只引用了第一个字母的alpha,所以我无法获得“ĝusti”、“ĝustivin”、“ĝuspa”到正确排序。我需要这样的代码来对单词进行排序:["bonanmatenon","ĉuviparolasesperanton","ĝuspa","ĝusti","ĝustivin","miamasvin","pacon"]defalphabetize(phrases)alpha="abcĉdefgĝhĥijĵklmnoprsŝtuŭvz".split(//)phrases.sort_by{|phrase|alpha.index

ruby - Ruby 中的 "method"方法有什么意义?

在Ruby中,有“method”方法,它创建一个方法对象,然后您可以将其视为Proc。如果您想进行元编程,这很有用:deffoobar(method_as_a_string)2.method(method_as_a_string).call(2)endfoobar("+")=>4foobar("-")=>0但是,通常情况下,如果您想进行这样的元编程,您会使用send而不是方法...deffoobar(method_as_a_string)2.send(method_as_a_string,2)endfoobar("+")=>4foobar("-")=>0Ruby中的“方法”方法有什么意

ruby - 在 Ruby 数组中收集重复项的最快/单行方法?

像这样转换数组的最快/单行方法是什么:[1,1,1,1,2,2,3,5,5,5,8,13,21,21,21]...进入像这样的对象数组:[{1=>4},{2=>2},{3=>1},{5=>3},{8=>1},{13=>1},{21=>3}] 最佳答案 要获得所需的格式,您可以附加一个调用以映射到您的解决方案:array.inject({}){|h,v|h[v]||=0;h[v]+=1;h}.map{|k,v|{k=>v}}虽然它仍然是单行的,但它开始变得凌乱了。 关于ruby-在Ruby

ruby-on-rails - Rails 3 : Looping through array of objects, 忽略数组中的第一个对象?

在我看来,我正在尝试显示一个对象表,这是我的代码:CategoriesCBB's">然而这是抛出一个错误说:can'tconvertCapabilityBuildingBlockintoArray关系是正确的,错误来self尝试在此处减去数组的第一个对象的行:有什么方法可以忽略数组中的第一个对象来遍历数组吗?谢谢 最佳答案 尝试使用Array.drop-http://www.ruby-doc.org/core/classes/Array.html#M000294 关于ruby-on-ra

ruby - 按字段的字母顺序对数组中的哈希进行排序

我认为这很容易,并且已经很努力地搜索过,但似乎无法让它工作。我有以下哈希:@friends=[{"name"=>"JohnSmith","id"=>"12345"},{"name"=>"JaneDoe","id"=>"23456"},{"name"=>"SamuelJackson","id"=>"34567"},{"name"=>"KateUpton","id"=>"45678"}]我正在尝试按名称的字母顺序对其进行排序。现在我正在这样做:@friends.sort{|a,b|a[0]b[0]}但是,它只是以非字母顺序输出完整结果。 最佳答案

ruby - 比较 rspec 中的 float 时的奇怪行为

以下测试中的第3个失败:specify{(0.6*2).shouldeql(1.2)}specify{(0.3*3).shouldeql(0.3*3)}specify{(0.3*3).shouldeql(0.9)}#thisonefails这是为什么呢?这是浮点问题还是ruby​​或rspec问题? 最佳答案 从rspec-2.1开始specify{(0.6*2).shouldbe_within(0.01).of(1.2)}在那之前:specify{(0.6*2).shouldbe_close(1.2,0.01)}

ruby-on-rails - Ruby 中的类方法(相当于 JAVA 中的静态方法)

伙计们,我正在学习ruby​​,最近从JAVA转行。在JAVA中,我可以将类的成员变量设为静态,并且该成员变量在类的实例中保持不变。我如何在ruby​​中实现相同的目标。我在我的ruby课上做了这样的事情:classBaseclass@@wordshashend到目前为止,这似乎在我测试时达到了目的,即@@wordhash在Baseclass的实例中保持不变。我的理解对吗?另外,我想在类中有一个成员方法,相当于JAVA中的静态方法(我不需要类的实例来访问它)。我怎样才能做到这一点?例如,我想在Baseclass中有一个像getwordshash()这样的方法,它返回@@wordshas